export interface IBlog {
  id: number;
  title: string;
  topValue: number;
  isGreat: boolean;
  categoryId: number;
  category: string;
  summary: string;
  content: string;
  wordCount: number;
  readDuration: number;
  visitCount: number;
  createTime: string;
  updateTime: string;
}

export interface INewBlog {
  id: number;
  title: string;
  topValue: number;
  isGreat: boolean;
  category: string;
  content: string;
}

export interface IQueryBlog {
  category?: string;
  title?: string;
  year?: number;
}

export interface IBasicBlog {
  category: string;
  topValue: number;
  isGreat: boolean;
  wordCount: number;
  readDuration: number;
  visitCount: number;
  createTime: string;
  updateTime: string;
}

export interface IBlogCategory {
  name: string;
  count: number;
}

export interface IBlogAdjacent {
  id: number;
  title: string;
}

export interface IBlogStats {
  blogCount: number;
  categoryCount: number;
  wordCount: number;
}

export interface IBlogLatest {
  id: number;
  title: string;
}

export interface IBlogVisit {
  ip: string;
  os: string;
  browser: string;
  uri: string;
  title: string;
  visitTime: string;
}

export interface IBlogComment {
  id?: number;
  blogId: number;
  name: string;
  website: string;
  content: string;
  ipAddress: string;
  userAgent: string;
  parentId: number;
  isApproved: boolean;
  createTime: string;
}

export interface IBlogNestedComment {
  comment: IBlogComment;
  replies: IBlogComment[];
}

export interface IBlogSearch {
  id: number;
  title: string;
  content: string;
  highlight: string;
}
